package tech.aistar.day05.statics;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2022/7/22 2:51 下午
 */
public class StaticDemo {
    //非静态的属性分配空间和初始化的时机是每次遇到创建对象的时候.
    private int id;

    //静态的属性仍然是JVM加载类进内存的时候分配空间以及初始化,机会只有1次
    //静态的实例->只有1个.所有的对象拿到的是同一个实例
    //并且是该类下的所有的实例共享的.
    private static int guid;

    public StaticDemo(){
        //this.id = ++id;

        this.id = ++guid;
    }

    public int getId() {
        return id;
    }

    public static void main(String[] args) {
        StaticDemo s1 = new StaticDemo();
        System.out.println(s1.getId());//1

        StaticDemo s2 = new StaticDemo();
        System.out.println(s2.getId());//1

        StaticDemo s3 = new StaticDemo();
        System.out.println(s3.getId());//1
    }
}
